{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# CIFAR classification in Fully Homomorphic Encryption (FHE) with Rounding Accumulators\n",
    "\n",
    "\n",
    "In notebooks [1](./FromImageNetToCifar.ipynb), [2](./CifarQuantizationAwareTraining.ipynb) and [3](./CifarInFhe.ipynb), we showed how to convert any custom NN into its FHE counterpart respecting the FHE constraints. Then, how to evaluate it in FHE simulation mode. Pure FHE computation will be available in the next releases.\n",
    "\n",
    "During those tutorials, you may have experienced some slowness of FHE computations, which is intimately related to non-linear crypto operations on large accumulator size. \n",
    "\n",
    "In this tutorial we present a new way to speed up computations by cancelling the least-significant bits of the accumulator, and thus having PBS of smaller precision. This technique reduces the FHE-circuit complexity while maintaining high accuracy."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Import the required packages"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import warnings\n",
    "from typing import Callable, List, Tuple\n",
    "\n",
    "import concrete.compiler\n",
    "import matplotlib.pyplot as plt\n",
    "import torch\n",
    "from cifar_utils import fhe_simulation_inference, get_dataloader, torch_inference\n",
    "from models import QuantVGG11\n",
    "from torch.utils.data.dataloader import DataLoader\n",
    "from torchvision import datasets\n",
    "\n",
    "from concrete.ml.torch.compile import compile_brevitas_qat_model\n",
    "\n",
    "warnings.filterwarnings(\"ignore\", category=UserWarning)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Settings "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "bit = 5\n",
    "seed = 42\n",
    "rounding_thresholds_bits = [8, 7, 6, 5, 3]\n",
    "\n",
    "device = \"cuda\" if torch.cuda.is_available() else \"cpu\""
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Concrete ML also supports a CUDA-enabled backend. To set it up, follow the instructions in the official [guide](../../../docs/guides/using_gpu.md) for installing the GPU-enabled Concrete compiler."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "compilation_device = \"cuda\" if concrete.compiler.check_gpu_available() else \"cpu\"\n",
    "\n",
    "print(f\"Is GPU enabled: {concrete.compiler.check_gpu_enabled()}\")\n",
    "print(f\"Is GPU available: {concrete.compiler.check_gpu_available()}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We define a function that evaluates models based on a range of rounding values."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "def accuracy_with_diff_rounding_thresholds_bits(\n",
    "    model: Callable,\n",
    "    X_train: torch.Tensor,\n",
    "    test_loader: DataLoader,\n",
    ") -> Tuple[List]:\n",
    "    \"\"\"Evaluate the model with different rounding values\"\"\"\n",
    "\n",
    "    accuracy_fhe_simulation, accuracy_torch = [], []\n",
    "\n",
    "    acc_torch = torch_inference(model, test_loader, device, True)\n",
    "\n",
    "    for max_bitwidth in rounding_thresholds_bits:\n",
    "        qmodel = compile_brevitas_qat_model(\n",
    "            model.to(\"cpu\"),\n",
    "            torch_inputset=X_train,\n",
    "            rounding_threshold_bits=max_bitwidth,\n",
    "            device=compilation_device,\n",
    "        )\n",
    "\n",
    "        acc_fhe_s = fhe_simulation_inference(qmodel, test_loader, True)\n",
    "\n",
    "        accuracy_torch.append(round(acc_torch, 4))\n",
    "        accuracy_fhe_simulation.append(round(acc_fhe_s, 4))\n",
    "\n",
    "    return accuracy_fhe_simulation[::], accuracy_torch[::]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "def plot_accuracy(acc_torch: List[float], acc_fhe: List[float], title: str) -> None:\n",
    "    \"\"\"Plot the Concrete accuracy based on different rounding values vs Torch accuracy\"\"\"\n",
    "\n",
    "    plt.figure(figsize=(15, 6))\n",
    "    plt.plot(rounding_thresholds_bits, acc_fhe, \"o-\", label=\"Acc with FHE simulation\")\n",
    "    plt.plot(rounding_thresholds_bits, acc_torch, \"o-\", label=\"Acc with Torch\")\n",
    "\n",
    "    for bits, acc in zip(rounding_thresholds_bits, acc_fhe):\n",
    "        plt.gca().annotate(f\"{acc:.2f}\", (bits - 0.1, acc + 0.01))\n",
    "\n",
    "    plt.title(f\"{title} - FHE accuracy according to different threshold values\")\n",
    "    plt.xlabel(\"Rounding thresholds\")\n",
    "    plt.ylabel(\"Top-1 accuracy\")\n",
    "\n",
    "    plt.xticks(rounding_thresholds_bits)\n",
    "    plt.gca().invert_xaxis()\n",
    "    plt.ylim(-0.02, 1.1)\n",
    "    plt.grid(True)\n",
    "    plt.legend()\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1. CIFAR-10"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "param_c10 = {\n",
    "    \"output_size\": 10,\n",
    "    # Small and representative input-set to be used for both quantization and compilation\n",
    "    \"calibration_dataset_size\": 10,\n",
    "    # We evaluate the model on 500 examples\n",
    "    \"dataset_size\": 500,\n",
    "    \"batch_size\": 10,\n",
    "    \"dataset_name\": \"CIFAR_10\",\n",
    "    \"dataset\": datasets.CIFAR10,\n",
    "    \"std\": [0.247, 0.243, 0.261],\n",
    "    \"mean\": [0.4914, 0.4822, 0.4465],\n",
    "    \"dir\": \"./checkpoints/CIFAR_10\",\n",
    "    \"pre_trained_path\": \"quant/CIFAR_10_quant_state_dict.pt\",\n",
    "    \"seed\": 42,\n",
    "}"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Pre-trained quantized model\n",
    "\n",
    "As for [CifarInFhe](./CifarInFhe.ipynb) notebook, we load the pre-trained quantized model."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<All keys matched successfully>"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "quant_vgg_c10 = QuantVGG11(bit=bit, output_size=param_c10[\"output_size\"])\n",
    "\n",
    "checkpoint = torch.load(f\"{param_c10['dir']}/{param_c10['pre_trained_path']}\", map_location=device)\n",
    "\n",
    "quant_vgg_c10.load_state_dict(checkpoint)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Cifar-10 data-set"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Files already downloaded and verified\n",
      "Files already downloaded and verified\n"
     ]
    }
   ],
   "source": [
    "# For the safe of simplicity, we use a small subset:\n",
    "# - from the train set to be used for both quantization and compilation\n",
    "# - from the testing set to evaluate the model with the rounding accumulator feature\n",
    "\n",
    "train_loader_c10, test_loader_c10 = get_dataloader(param=param_c10)\n",
    "\n",
    "calibration_data_c10, _ = next(iter(train_loader_c10))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Rounding accumulators\n",
    "\n",
    "To show the effect of the rounding accumulators feature, we test all possible rounding values, starting from `qmodel.fhe_circuit.graph.maximum_integer_bit_width()`, which is 14 is our case."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 50/50 [00:03<00:00, 14.44it/s]\n",
      "100%|██████████| 50/50 [06:33<00:00,  7.87s/it]\n",
      "100%|██████████| 50/50 [05:59<00:00,  7.18s/it]\n",
      "100%|██████████| 50/50 [06:14<00:00,  7.50s/it]\n",
      "100%|██████████| 50/50 [06:35<00:00,  7.91s/it]\n",
      "100%|██████████| 50/50 [06:12<00:00,  7.44s/it]\n",
      "100%|██████████| 50/50 [06:26<00:00,  7.73s/it]\n",
      "100%|██████████| 50/50 [06:48<00:00,  8.16s/it]\n"
     ]
    }
   ],
   "source": [
    "acc_fhe_c10, acc_torch_c10 = accuracy_with_diff_rounding_thresholds_bits(\n",
    "    quant_vgg_c10,\n",
    "    calibration_data_c10,\n",
    "    test_loader_c10,\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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WJj++usvbd682d7W9EaYZeV9kJL7dffu3RUQEKDg4GCNHz9eVqvVpceXmJioGTNmqGrVqvLx8VHJkiXVqlUrrV+/Pk27M2uPJMXExOjJJ5+0vy/Vq1fXyy+/LMMwnJ6L1P766y/deeed8vX11S233KLnnnsuzYhFZ15++WWZTCYdP348zbLJkyfLy8tL//33n6TsXZdTSznXzqbrpvfeDRo0SCEhIfL29lbt2rW1aNGiNOu+8cYbql27tvz8/FS8eHE1btzYfg0FAFzDSDQAKAS+/vprVapUSS1atLip7cTFxTn8oS9JRYoUsY9k+eyzz+Tv76977rlHvr6+qly5sj755JMs7zclXHHlyLDff/9dktS4cWOH8kaNGslsNuv333/PdHRddl26dCnNeSpRooTDlDmr1ZqmjiT7H1hZ3a4k+43O07N8+XLFxsbq8ccfV8mSJbVjxw698cYb+vfff7V8+XJ7vT/++EOtW7eWp6enhg0bprCwMB0+fFhff/21Zs2aJUk6deqUmjRpoosXL2rYsGGqUaOGTp48qRUrVig2NvaGRp0cOHBAffr00aOPPqqhQ4eqevXqkqT58+erdu3auvfee+Xh4aGvv/5aw4cPl81m04gRI+zrL1myRIMGDVLt2rU1efJkFStWTL///rvWrl2rvn376pFHHtGzzz6rpUuXauTIkfb1EhIStGLFCvXo0UM+Pj7ptm/9+vU6cuSIBg4cqNDQUPvU57/++ks//fST/dxn5dxcvnxZrVu31r59+zRo0CDdeuutioyM1KpVq/Tvv/8qKChIV65cUdu2bXXo0CGNHDlSFStW1PLlyzVgwABdvHgxTeC9ePFixcXFadiwYfL29laJEiW0Z88edejQQcHBwZo+fbqSkpIUHh6e6QjP1J544gkVL15c4eHhOnbsmObNm6eRI0dq6dKl9jqTJ0/Wiy++qK5du6pjx47avXu3OnbsmOm9DYODgzV//nw9/vjjuu+++3T//fdLkurVqydJ+u6773T33XerUqVKmj59uq5cuaI33nhDLVu21M6dOzOcHn3lyhXdddddOnHihEaNGqUyZcroo48+0vfff59hm2rWrKmPPvpIY8eO1S233KInn3xSktSwYUP7vdGun9IeGxurNm3a6OTJk3r00UdVvnx5bdu2TZMnT9bp06fTPHzA2Xv1119/qWXLlipb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ValSRfHx8dneb+fOnWW1WtP0xVdffVUmk0l33313huv+9NNP2rFjh0M7s/I7LEWPHj1ksVj02Wefafny5brnnnscgt+sXpedCQwMVFBQUJr77b399tsOry0Wi3r06KEvvvjCaXCf0bn38vJSrVq1ZBiGEhMTM20TABQmjEQDgEKgcuXK+vTTT9WrVy/VrFlT/fr1U506dZSQkKBt27Zp+fLlGjBgwA1tOz4+Xl988YXat2+fbsB077336rXXXkszpfJ6JUuW1MCBA/X2229r3759aUa1pXb8+HF99NFHkmQPLZ577jlJySMJHnnkEUnJo9dmzpypESNG6IEHHlDHjh31ww8/6OOPP9asWbMyvSl/XvLDDz+kCYqk5Ck51983KEWNGjVUuXJljR8/XidPnlRgYKC++OILpyOFXn/9dbVq1Uq33nqrhg0bpooVK+rYsWNavXq1du3aJUl6/vnn9e2336pNmzYaNmyYatasqdOnT2v58uX68ccfVaxYMXXo0EHly5fX4MGDNWHCBFksFi1atEjBwcFpArr0dOjQQV5eXurataseffRRXb58We+9955KlSrl8Md4YGCgXn31VQ0ZMkS33Xab+vbtq+LFi2v37t2KjY11CO48PT3Vu3dvvfnmm7JYLA437k9PYGCgbr/9dr344otKTExU2bJl9e233+ro0aNp6mbl3EyYMEErVqzQAw88oEGDBqlRo0a6cOGCVq1apQULFqh+/foaNmyY3nnnHQ0YMEC//fabwsLCtGLFCm3dulXz5s3L0kNCZsyYobVr16p169YaPny4PYSrXbu2/vjjjyy9B5kJCQnR6NGj9corr+jee+9Vp06dtHv3bv3f//2fgoKCMh3h5Ovrq1q1amnp0qWqVq2aSpQooTp16qhOnTp66aWXdPfdd6t58+YaPHiwrly5ojfeeENFixbV9OnTM9zu0KFD9eabb6pfv3767bffVLp0aX300Uf2sMiVJkyYoFWrVumee+7RgAED1KhRI8XExGjPnj1asWKFjh07pqCgoAy38dZbb6lVq1aqW7euhg4dqkqVKikiIkLbt2/Xv//+q927d2e7XY0aNdL8+fP13HPPqUqVKipVqpTuvPNOp3Uzeh9cIavHV6tWLbVt21aNGjVSiRIl9Ouvv2rFihUaOXJktvfZtWtX3XHHHZoyZYqOHTum+vXr69tv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74tmkhRa1EetqwbLYnbtzdsXLlyopKQklSlTxl5mGIa8vb315ptvqmjRovL19U13/YyWpadt27Z699139cMPP6hhw4YKDAy0B2ubN2/OciB3vdTTIVOmotpstgzXCQoKUpUqVbK1vESJtEGml5dXhtu53vTp09W3b1+tXr1a//d//6fw8HB9/vnnDveaS+36qZ4mk8lpWcrxpoRrqe+Pl5iYmGGbXnrpJb322muaN2+e6tatK39/f40ZM0YJCQlZPq7syKj97sCDBQAAAAAAyOcsZpPCuyZPD7w+Ikt5Hd61lssDtKSkJH344Yd65ZVXtGvXLvvX7t27VaZMGftN5evVq6cNGzY43UbdunVls9m0efPmLO+3TZs22rt3r5YvX24f7da2bVt999132rp1q73MGS8vL1mt1izvKy+rVq2axo4dq2+//Vb333+//T5vrpDygITTp6891TX1Qwac2bp1q7p166aHH35Y9evXV6VKlXTw4EGHOlk5/zVr1tTWrVvTbLtatWr2UWi5gRANAAAAAIACoFOd0pr/8K0KLerjUB5a1EfzH75VneqUdvk+v/nmG/33338aPHiw6tSp4/DVo0cP+xM2w8PD9dlnnyk8PFz79u3Tnj17NGfOHEnJ0wz79++vQYMG6auvvtLRo0e1adMmLVu2LN391qtXT8WLF9enn37qEKJ99dVXio+PV8uWLdNdNywsTH/88YcOHDigyMjITEdX5ZSkpCSdOXPG4SsiIsJp3StXrmjkyJHatGmTjh8/rq1bt+qXX35RzZo1XdYeX19fNWvWTC+88IL27dunzZs3p7m32/WqVq2q9evXa9u2bdq3b58effTRNMcQFhamn3/+WceOHVNkZKTTkWNPPvmkNmzYoJkzZ+rgwYP64IMP9Oabbzrcby03EKIBAAAAAFBAdKpTWj9OvFOfDW2m13o30GdDm+nHiXe6JUCTkqdytmvXTkWLFk2zrEePHvr111/1xx9/qG3btlq+fLlWrVqlBg0a6M4779SOHTvsdefPn6+ePXtq+PDhqlGjhoYOHaqYmJh092symdS6dWuZTCa1atVKUnKwFhgYqMaNG8vf3z/ddYcOHarq1aurcePGCg4OTjPiKbf89ddfKl26tMNXhQoVnNa1WCw6f/68+vXrp2rVqunBBx/U3Xff7fDgBldYtGiRkpKS1KhRI40Z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146cu6zouCT9+98V/fvfFW056Dh6zd/LoopXp4Q6jmLzl58XfwYAAJBd/PYEAAAA8jBvD4uqhRRRtZAiDuWGYeh8TEKqe6+lPNwgRicuxComwao/T0brz5PRabZZpqhPqvuu+atyqeSnh5YO9JGZ0ecAADhFiAYAAADkQyaTSUEB3goK8FaTiiUcliUk2XTiwrXRayn3Xzty7rL+i03Uqag4nYqK04+HIh3W8/E0q+LVkWuVU8K1oABVDPZXgDd/OgAACjd+EwIAAAAFjJeHWVVKBahKqYA0yy7EJCSHaudidDjy2tTQ4+djFZdo077T0dp3Ou3otZBAb/vU0MrB176XKebLvVMBAIUCIRoAAABQiJTw91IJ/xJqHOY4ei3RatM/F2KvTglNCdeS/x15OUER0fGKiI7X9iPnHdbz8jCrYkl/h3AtZapooI9nTh5aoffWW2/ppZde0pkzZ1S/fn298cYbatKkSbr1582bp/nz5+vEiRMKCgpSz549NXv2bPn4+EiSZs+erS+//FL79++Xr6+vWrRooTlz5qh69eo5dUgAkKcQogEAAACQp8V8NfwKkBTisCwqNtFh1FpKuHYsMlYJSTYdiLikAxGX0mwzKMDb/sTQ5O/JDzq4pbivPCzmHDqywmHp0qUaN26cFixYoKZNm2revHnq2LGjDhw4oFKlSqWp/+mnn2rSpElatGiRWrRooYMHD2rAgAEymUyaO3euJGnz5s0aMWKEbrvtNiUlJenpp59Whw4dtHfvXvn7++f0IQJAriNEAwAAAJChon6eurV8cd1avrhDudVm6N//kkevHU5137XD52J07lK8Ii8nf/189ILDel4WsyqU9LvuqaHJQVsxP6+cPLQCY+7cuRo6dKgGDhwoSVqwYIFWr16tRYsWadKkSWnqb9u2TS1btlTfvn0lSWFhYerTp49+/vlne521a9c6rLNkyRKVKlVKv/32m26//XY3Hg0A5E2EaAAAAABuiMVsUoWS/qpQ0l931HAc7RQdl6ij100NPXzuso5Gxig+yaa/z17W32cvS4pwWK+kv5d9xFrqqaHlS/jJk9FrTiUkJOi3337T5MmT7WVms1nt2rXT9u3bna7TokULffzxx9qxY4eaNGmiI0eOaM2aNXrkkUfS3U9UVJQkqUSJEunWAYCCjBANAAAAgMsF+niqfrliql+umEO5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r19fHTt21NmzZ53W37Ztm/r06aPBgwfr999/V/fu3dW9e3f9+eefkiTDMNS9e3cdOXJEK1eu1O+//64KFSqoXbt2iomJcUmbCdEAAAAAAAAKodwM0ubOnauhQ4dq4MCBqlWrlhYsWCA/Pz8tWrTIaf3XXntNnTp10oQJE1SzZk3NnDlTt956q958801J0t9//62ffvpJ8+fP12233abq1atr/vz5unLlij777DOXtJkQDQAAAAAAoJDKjSAtISFBv/32m9q1a2cvM5vNateunbZv3+50ne3btzvUl6SOHTva68fHx0uSfHx8HLbp7e2tH3/80SXtJkQDAAAAAAAoxHI6SIuMjJTValVISIhDeUhIiM6cOeN0nTNnzmRYv0aNGipfvrwmT56s//77TwkJCZozZ47+/fdfnT592iXtJkQDAAAAAAAo5HL7Hmk3y9PTU19++aUOHjyoEiVKyM/PTxs3btTdd98ts9k18ZeHS7YCAAAAAACAfK13k/KSpElf7tHircckSdPuqSWTyeTS/QQFBclisSgiIsKhPCIiQqGhoU7XCQ0NzbR+o0aNtGvXLkVFRSkhIUHBwcFq2rSpGjdu7JJ2MxINAAAAAAAAknJmRJqXl5caNWqkDRs22MtsNps2bNig5s2bO12nefPmDvUlaf369U7rFy1aVMHBwfr777/166+/qlu3bi5pNyPRAAAAAAAAYJfeiDSbIf189IJ+izSp5NELal6llCzmGxulNm7cOPXv31+NGzdWkyZNNG/ePMXExGjgwIGSpH79+qls2bKaPXu2JGn06NFq06aNXnnlFXXp0kWff/65fv31V7377rv2bS5fvlzBwcEqX7689uzZo9GjR6t79+7q0KHDTZyNawjRAAAAAAAA4OD6IO3Y+RjtO31JZ6LiJFn04d+/qnRRH4V3raVOdUpne/u9/r+9O4+quk78P/66ILuAYopQKuSCG+7JQW1axlQqjjQOLuOCS+opOUYUJqaiY+bS2OhY6bFR9GhUjpPot0mNHLFRCUHDslzQcdQK1NxATEX4/P7oeH/dwK6ml0/38nycwzl+lvv5vD6X97nCi88yaJDOnDmj6dOnq7i4WJ06ddLmzZutDw84ceKEzb3MevTooYyMDE2dOlVTpkxRy5YtlZmZqfbt21vXKSoqUnJysk6dOqWQkBCNGDFC06ZNu7M34ico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",
      "text/plain": [
       "<Figure size 1500x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_accuracy(acc_torch_c10, acc_fhe_c10, title=\"CIFAR-10\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The maximum size of the accumulator of this model is 14. However, rounding to 6-bits gives an interesting compromise between accuracy and computation time in FHE."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 2. CIFAR-100\n",
    "\n",
    "Since the methodology is the same, we do exactly the same thing but this time with the CIFAR-100 hyper-parameters."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "param_c100 = {\n",
    "    \"output_size\": 100,\n",
    "    # Small and representative input-set to be used for both quantization and compilation\n",
    "    \"calibration_dataset_size\": 10,\n",
    "    # We evaluate the model on 100 examples\n",
    "    \"dataset_size\": 500,\n",
    "    \"batch_size\": 10,\n",
    "    \"dataset_name\": \"CIFAR_100\",\n",
    "    \"dataset\": datasets.CIFAR100,\n",
    "    \"std\": [0.229, 0.224, 0.225],\n",
    "    \"mean\": [0.485, 0.456, 0.406],\n",
    "    \"dir\": \"./checkpoints/CIFAR_100\",\n",
    "    \"pre_trained_path\": \"quant/CIFAR_100_quant_state_dict.pt\",\n",
    "    \"seed\": 42,\n",
    "}"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Pre-trained quantized model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<All keys matched successfully>"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Loading the pre-trained quantized model\n",
    "quant_vgg_c100 = QuantVGG11(bit=bit, output_size=param_c100[\"output_size\"])\n",
    "\n",
    "checkpoint = torch.load(\n",
    "    f\"{param_c100['dir']}/{param_c100['pre_trained_path']}\", map_location=device\n",
    ")\n",
    "\n",
    "quant_vgg_c100.load_state_dict(checkpoint)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Cifar-100 data-set"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Files already downloaded and verified\n",
      "Files already downloaded and verified\n"
     ]
    }
   ],
   "source": [
    "train_loader_c100, test_loader_c100 = get_dataloader(param=param_c100)\n",
    "\n",
    "calibration_data_c100, _ = next(iter(train_loader_c100))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Rounding accumulators"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 50/50 [00:03<00:00, 14.01it/s]\n",
      "100%|██████████| 50/50 [07:18<00:00,  8.77s/it]\n",
      "100%|██████████| 50/50 [06:26<00:00,  7.73s/it]\n",
      "100%|██████████| 50/50 [06:17<00:00,  7.55s/it]\n",
      "100%|██████████| 50/50 [06:26<00:00,  7.73s/it]\n",
      "100%|██████████| 50/50 [06:14<00:00,  7.49s/it]\n",
      "100%|██████████| 50/50 [06:27<00:00,  7.74s/it]\n",
      "100%|██████████| 50/50 [06:29<00:00,  7.80s/it]\n"
     ]
    }
   ],
   "source": [
    "acc_fhe_c100, acc_torch_c100 = [], []\n",
    "\n",
    "acc_fhe_c100, acc_torch_c100 = accuracy_with_diff_rounding_thresholds_bits(\n",
    "    quant_vgg_c100, calibration_data_c100, test_loader_c100\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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xIkKCQmRu7u7qlWrpjVr1iTpc2dNtPr166tTp06SpKpVq8pkMqlz584KCgrSsGHDJEn+/v5Jxvfvv/+uOnXqyNPTU15eXmratKn+/fffJOeb0ntltVo1duxYlSlTRm5ubsqbN6969Oihy5cv2+0jNe/L1KlT9fzzz0uSGjRoYLuuK1euTPY6OXof7ryerq6uqlq1qjZv3pzu57dlyxY1btxYfn5+cnd3V3BwsLp27Zps3I7ikaQVK1bY3pecOXPq2WefTbEcQWKGYej9999XwYIF5eHhoQYNGiR5P5MTExMjX19fdenSJclrERERcnNz04ABAySl7XP5Tglj8k7Dhw9P9r2bPn267bPE19dXbdq00fHjx+36HDhwQC1btlRAQIDc3NxUsGBBtWnTRuHh4Q7jAYDsjJloAJCN/PrrrypSpIhq1qx5X/uJjIzUhQsX7Nq8vLxsy7tmzpwpT09PPf3003J3d1dISIh+/PHHVB834RfphJlh6WHbtm2SpCpVqti1h4aGymw2a9u2berQoYOsVqt27tyZ7C9i1apV09KlS3X16lV5eXmlW2xxcXFJrqebm1uSOmdXr15N0k+KT36kdr9S/NLbu832iIiI0Hfffae2bduqe/fuunr1qiZNmqTGjRtr06ZNqlixoq3vSy+9pKlTp+qpp55St27dFBsbqzVr1mjDhg22az1ixAgNHz5cNWvW1MiRI+Xi4qKNGzdqxYoVeuKJJ1KM42569uwpf39/DR06VNevX5cUv6xu3bp1atOmjQoWLKgjR45o/Pjxql+/vvbs2SMPDw9J8ct169Spo71796pr166qXLmyLly4oIULF+rEiROqWLGiWrRooVmzZmnMmDF2s65mzpwpwzBsv+yn5PPPP9czzzyj9u3bKzo6Wj/99JOef/55/fbbb2ratKmtX2quzdSpU9W1a1eVKVNGgwcPVs6cObVt2zb98ccfateuna1Ply5dVLVqVY0aNUpnz57V559/rr///lvbtm2zmw0VGxurxo0bq3bt2vr0009t16Vbt26aPn262rVrp5o1a2rFihV2sTpy8OBBtWrVSi+99JI6deqkyZMnq3PnzgoNDVWZMmUkxdcaTEjUDB48WJ6envruu+9StTS0R48eOnXqlJYtW6Zp06bZvWYYhp555hn99ddfeumll1SxYkUtWbJEb775pk6ePKnPPvvsrvueNGmSevTooZo1a6pfv346fPiwnnnmGfn6+qpQoUIpbjdkyBCVKFFCEydO1MiRIxUcHKyQkBA1b95cP/zwg3755ReNHz9eOXLkUPny5SXF32ygU6dOaty4sT766CPduHFD48ePV+3atbVt2za7ZEdK71WPHj1s73nfvn0VFhamL7/8Utu2bdPff/9tt9zU0ftSt25d9e3bV1988YXefvttlSpVSpJs/6blfUgwY8YMXb16VT169JDJZNLHH3+s5557TocPH7aL7X7O79y5c3riiSfk7++vQYMGKWfOnDpy5IjmzZt3T/H8+eefeuqpp1SkSBENHz5cN2/e1Lhx41SrVi1t3br1rstchw4dqvfff19NmjRRkyZNtHXrVj3xxBOKjo5OcRtJcnZ2VosWLTRv3jx98803cnFxsb02f/58RUVFqU2bNpLS9rl8Pz744AO9++67euGFF9StWzedP39e48aNU926dW2fJdHR0WrcuLGioqLUp08fBQQE6OTJk/rtt9905coVSgYAeLQZAIBsITw83JBkPPvss6neJjAw0GjatKldm6Rkv6ZMmWLrU65cOaN9+/a252+//bbh5+dnxMTE2O2rU6dOhqenp3H+/Hnj/PnzxsGDB41PP/3UMJlMRtmyZQ2r1Zqmc+zVq5eR0o+uXr16GRaLJdnX/P39jTZt2hiGYRjnz583JBkjR45M0u+rr74yJBn79u1LU1x3U69evWSvZ6dOnWx9/vrrrxSve8KXp6dnqvYryejRo8ddY4qNjTWioqLs2i5fvmzkzZvX6Nq1q61txYoVhiSjb9++SfaR8N4dOHDAMJvNRosWLYy4uLhk+xhG/LgaNmxYkv0EBgbaXYspU6YYkozatWsbsbGxdn1v3LiRZPv169cbkowffvjB1jZ06FBDkjFv3rwU416yZIkhyfj999/tXi9fvrxRr169JNvd6c5YoqOjjbJlyxqPP/64rS011+bKlSuGl5eXUb16dePmzZvJ9omOjjby5MljlC1b1q7Pb7/9Zkgyhg4damvr1KmTIckYNGiQ3b62b99uSDJ69uxp196uXbsk703CexAWFmZrCwwMNCQZq1evtrWdO3fOcHV1Nd544w1bW58+fQyTyWRs27bN1nbx4kXD19c3yT6Tk9L3+Pz58w1Jxvvvv2/X3qpVK8NkMhkHDx5McZ8J169i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nzOpiSeztGnTRt98841+//13NW/eXLNnz1bJkiVVoUIFW5/7+VxOadbvnZ+vVqtVJpNJv//+e7LXLPE1HT16tDp37qwFCxZo6dKl6tu3r0aNGqUNGzYkSYwCwKOEJBoAZCNPP/20Jk6cqPXr1yc7G+R+rVq1SidOnNDIkSOTFKW+fPmyXn75Zc2fP/+uy+Hy5cun119/XSNGjNCGDRv02GOPqWPHjqpdu7atT2ruxnmnhOVjW7ZsUZMmTWztW7ZskdVqtb1uNptVrly5JHeXlKSNGzeqSJEid10SO3r0aLvZFndLuGVVc+fOVZEiRTRv3jy7X77uXLYZEhKiJUuW6NKlSynORgsJCZHVatWePXvuWvg6V65cunLlil1bdHR0ssnMu8XdqVMnjR492tYWGRmZZL8hISGpSiaXLVtWlSpV0o8//qiCBQvq2LFjGjdunMPtfv75Z7m5uWnJkiV2M2KmTJmSJA5H1yZhZtju3btTnK0VGBgoSdq/f3+SGU779++3vX43gYGBslqtOnTokN1snP379zvcNi0CAwNtM1QTS64tOSklAwIDA/Xnn38muenHvn37bK/fLSYpfhZO4usXExOjsLAwu0TG/Up4P/PkyXPPs0RDQkL0559/qlatWvf0WZictC6tTs+l9ndK6/k99thjeuyxx/TBBx9oxowZat++vX766Sd169Yt1cdM/D10p3379snPzy/Fm7EkHj+JZy6eP38+1bP96tatq3z58mnWrFmqXbu2VqxYoSFDhtj1Se3ncnKS+3yVks7QDAkJkWEYCg4OVvHixR3ut1y5cipXrpzeeecdrVu3TrVq1dKECRP0/vvvO9wWALIraqIBQDby1ltvydPTU926ddPZs2eTvH7o0CF9/vnn97z/hKWcb775plq1amX31b17dxUrVizF2QWJ9enTRx4eHvrf//4nSSpSpIgaNmxo+6pVq1aaY3v88cfl6+ur8ePH27WPHz9eHh4edstMW7Vqpc2bN9sl0vbv368VK1Y4XMoXGhpqF2t6L2N8EBJmICSepbFx40atX7/erl/Lli1lGIbdLMEECds2b95cZrNZI0eOTDIbLPH+Q0JCtHr1arvXJ06cmOJMtJTivnNmybhx45Lso2XLltqxY4d++eWXFONO8OKLL2rp0qUaO3ascufOraeeeipVcZhMJrvjHjlyRPPnz7fr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QwOAbCvNSbS2bduqb9+++uuvvxQXF6e4uDitWLFCr732mtq0aZMRMQIAAAAA7lDI10PzEtVJG7rgX71FnTQAyDBpvjvne++9pyNHjuj//u//5OQUv7nValXHjh2piQYAAAAAD1BCnbRyBXw06ve9mvPPCf139qomvBiqfD7umR0eAGQraZ6J5uLiolmzZmn//v368ccfNW/ePB06dEiTJ0+Wi4tLRsQIAAAAAEiByWRS97rUSQOAjJbmmWgJihUrpmLFiqVnLAAAAACAe5RQJ637D1u078xVtft2g4Y1K60OjwXKZDJldngA8NBL80y0li1b6qOPPkrS/vHHH+v5559Pl6AAAAAAAGlXyNdD83rWVLNbddLepU4aAKSbNCfRVq9erSZNmiRpf+qpp7R69ep0CQoAAAAAcG88XJz0RZuKertJSZlN0px/Tqj1xA06HX4zs0MDgIdampNo165dS7b2mbOzsyIiItIlKAAAAADAvTOZTHq5boi+71otvk7a8SvUSQOA+5TmJFq5cuU0a9asJO0//fSTSpcunS5BAQAAAADuX51i/vq1d22VDPDShWvRavftBk1bf0SGYWR2aADw0EnzjQXeffddPffcczp06JAef/xxSdLy5cs1c+ZMzZkzJ90DBAAAAADcu4Q6aW/N3anfdp7Wuwv+1a6T4Rr5bFm5OVsyOzwAeGikeSZas2bNNH/+fB08eFA9e/bUG2+8oRMnTujPP/9U8+bNMyBEAAAAAMD98HBx0ri2lTT4qfg6abO3xNdJOxMemdmhAcBDI80z0SSpadOmatq0aXrHAgAAAADIICaTST3qhah0fm/1nrFNO45f0dPj1mp8h8qqGuSb2eEBQJaX5ploAAAAAICHl32dtCi1nbhB0zYcpU4aADiQ5iRaXFycPv30U1WrVk0BAQHy9fW1+wIAAAAAZG2Fc8fXSWtaPp9irYbenb9bg37epajYuMwODQCyrDQn0UaMGKExY8aodevWCg8PV//+/fXcc8/JbDZr+PDhGRAiAAAAACC9ebg46cu2lTToVp20WVuOq/U31EkDgJSkOYn2448/6ttvv9Ubb7whJycntW3bVt99952GDh2qDRs2ZESMAAAAAIAMYDKZ9Eq9EE3tUk0+7s7afqtO2uYjlzI7NADIctKcRDtz5ozKlSsnScqRI4fCw8MlSU8//bQWLVqU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xrZt2wxJxvfff1/kLL179zbq1atnXLx40batR48eRs+ePQ3DMIz9+/cbkoyUlBTb/cePHzc8PT1tr+eVv0bh4eHGkCFD7J4nLCzMCAkJMQyj4LWXZCQnJxc5EwAAwOX4JBoAAKgQ7rvvPu3cuVObN29W79691bdvX3Xv3l1SwSevcnNz1aFDB9v+rq6uateunfbs2XNTzxMUFKQqVarYbgcEBOjo0aO257lw4YLCwsJs91evXl2NGjUq9rgtWrSw/bu3t7d8fHxsx923b5/atm1rt3+7du1uau4bPYdCoaGhdre/+uorrV+/XpUrV7b9NG7cWFLBeYeEhOj//u//FBwcrB49emjevHk6efKk3TGaNWsmq9Va5PPu2bNHlSpVsnvtatSooUaNGl3z12jPnj12+0tSeHi47d+rV6+uPn36KDIyUl26dNGMGTN05MiRYl8fAABQMRGiAQCACsHb21sNGjRQSEiI5s+fr82bN+vdd9+94ce7uLjYffVQUpFfI3R1dbW7bbFYlJ+f/8eGLoXj/tHn8vb2trt95swZdenSRTt37rT7SU9P15/+9CdZrVYlJiZqzZo1atq0qd5++201atRIhw4duqnnLWkLFixQamqq2rdvrw8//FB33XWX/ve//zn0OQEAQPlEiAYAACocFxcXjRw5UqNGjdJvv/2mO++809bvVSg3N1dbt25V06ZNJRVcMTM7O9uuCH/nzp039bx33nmnXF1dtXnzZtu2kydPav/+/bd0Po0aNVJaWprdtss7zq7F1dVVeXl5t/TchVq3bq3du3crKChIDRo0sPspDNwsFos6dOig8ePHa8eOHXJzc9PKlStv6PhNmjTRxYsX7V67X3/9Vfv27bP9GhX1mMv3l1RkQNaqVSvFxcVp06ZNat68uZYtW3ajpw0AACoQQjQAAFAh9ejRQ1arVbNmzZK3t7cGDx6s4cOHKyEhQd9++60GDBigs2fPqn///pKksLAweXl5aeTIkTp48KCWLVtmV3p/IypXrqz+/ftr+PDh+s9//qNdu3apT58+cnG5tT+SDRo0SHv37tWLL76o/fv3a/ny5bbZrleSHxQUpKSkJGVkZFz11cqbNXToUJ04cULR0dHaunWrDh48qLVr16pv377Ky8vT5s2bbQX/hw8f1ieffKJjx46pSZMmN3T8hg0bqmvXrhowYIA2btyor776Sk8//bRq1aqlrl27FvmYF154QfPnz9eCBQu0f/9+jR07Vrt377bdf+jQIcXFxSk1NVU//PCDvvjiC6Wnp9/wTAAAoGIhRAMAABVSpUqVFBMTo8mTJysnJ0eTJk1S9+7d9cwzz6h169Y6cOCA1q5dq2rVqkkq6M9asmSJVq9ereDgYL3//vsaN27cTT/vm2++qXvuuUddunRRRESEOnbseFW/2M2qX7++VqxYoU8++UQtWrTQnDlzbFfndHd3v+bjpk6dqsTERNWpU0etWrW6pRkCAwOVkpKivLw8derUScHBwRo2bJiqVq0qFxcX+fj46Msvv9RDDz2ku+66S6NGjdLUqVPVuXPnG36OBQsWKDQ0VI888ojCw8NlGIZWr1591ddAC/Xs2VOjR4/WiBEjFBoaqh9++EGDBw+23e/l5aW9e/eqe/fuuuuuuzRw4EANHTpUgwYNuqXXAgAAOCeLcWW5BwAAAMq91157TXPnztWPP/5o9igAAABOoZLZAwAAAODWzZ49W23btlWNGjWUkpKiN998UzExMWaPBQAA4DQI0QAAAJxAenq6Xn31VZ04cUJ169bV3//+d8XFxZk9FgAAgNPg65wAAAAAAABAMbiwAAAAAAAAAFAMQjQAAAAAAACgGIRoAAAAAAAAQDEI0QAAAAAAAIBiEKIBAAAAAAAAxSBEAwAAAAAAAIpBiAYAAAAAAAAUgxANAAAAAAAAKMb/BzWsVpaQpzpGAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 1500x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_accuracy(acc_torch_c100, acc_fhe_c100, title=\"CIFAR-100\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The maximum size of the accumulator of this model is 14. However, rounding to 6-bits gives the same accuracy and decreases the complexity of the FHE-circuit."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Conclusion\n",
    "\n",
    "Before running a model in FHE, it is always recommended to start with the FHE simulation. This allows to understand the complexity of the ML model and therefore to explore new strategies to find an interesting trade-off between accuracy and computation time.\n",
    "\n",
    "**The rounding accumulator** is a good technique that speeds up the computation while maintaining a high accuracy."
   ]
  }
 ],
 "metadata": {
  "execution": {
   "timeout": 10800
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
